/*==============================================================================
            Copyright (c) 2013 Moritz Hader, Marcel Schrder
            All Rights Reserved.

	@file  HeimdallLinkable.h

	@brief This header provides the class-definitions of the HeimdallLinkable
	The linkable needs to be inherited by any class that is to be stored in the
	HeimdallObjectContainer.
   
   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
================================================================================*/

#ifndef _HEIMDALLINKABLE_LIBRARY__
#define _HEIMDALLINKABLE_LIBRARY__

class HeimdallLinkable{

	HeimdallLinkable* nextElement;
	HeimdallLinkable* previousElement;
	int index;

public:
	HeimdallLinkable() {this->nextElement = NULL; this->previousElement = NULL; index = 0;};
	~HeimdallLinkable() {};

	HeimdallLinkable* getNextElement(){return this->nextElement;};
	void setNextElement(HeimdallLinkable* elem){this->nextElement=elem;};

	HeimdallLinkable* getPreviousElement(){return this->previousElement;};
	void setPreviousElement(HeimdallLinkable* elem){this->previousElement=elem;};

	int getIndex(){return this->index;};
	void setIndex(int i){this->index = i;};
};

#endif
